添加触屏驱动


1. 添加对应触摸屏的驱动文件

触控驱动请触控IC厂家提供,触控驱动属于input子系统,驱动运行加载成功后,会在/dev/input/eventX(一般如无其他input子系统存在,会生成的是event0)

  1. 将IC厂家提供的linux驱动添加到 kernel/drivers/input/touchscreen/ 目录下

  2. 如下图,在kernel/drivers/input/touchscreen/Makefile中添加驱动文件链接,并用CONFIG_TOUCHSCREEN_GOODIX控制

  3. 如下图,在kernel/drivers/input/touchscreen/Kconfig中添加CONFIG_TOUCHSCREEN_GOODIX,以便在kernel config中增加make menuconfig 配置


2. DTS添加触摸屏设备树节点

针对IC厂家提供的驱动,以及硬件连接原理图,添加设备树节点,以供驱动获取使用。

常见的设备树需要配置的有:

  1. 根据驱动使用的name配置设备树节点的compatible name

  2. 触控IC的i2c slave addr

  3. 触控IC跟主芯片连接的RST/Interrupts pin脚


3. 操作示例

下面使用公版的Goodix驱动为例进行说明。

打开kernel/arch/arm/boot/dts/infinity2m-ssc011a-s01a-display.dtsi (实际使用过程中请添加到项目使用到的dtsi中)

  1. 根据硬件连接,Goodix设备树节点是选择挂在了i2c-group = 1这里,使用的是i2c mode1

  2. 创建goodix_gt911@5D节点,节点compatible = “goodix,gt911” (compatible name需要匹配驱动)

  3. 根据触控IC厂家提供的I2C slave addr,配置好reg属性,这里goodix的I2C slave addr地址为0x5D (需要IC厂家确认)

  4. 设备树节点根据硬件连接,配置好goodix_rst/goodix_int 两个属性对应的pin脚(属性名字需要匹配驱动)

注意:触控设备最好不要有重复,如项目上新增了其他触控设备,请在config中关闭公版Default的Goodix驱动